package com.CST.mapper.cst.ys;

import com.CST.entity.ys.*;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 采集凭证
 *
 * @author cw
 * @since 2023-04-20
 */
@Mapper
public interface YsEtlAccountMapper extends BaseMapper<YsEtlAccount> {
    /**
     * 批量插入
     * @param insertList 插入数据
     * @return result
     */
    int insertBatch(List<YsEtlAccount> insertList);

    /**
     * 插入采集记录表
     * @param dto dto
     * @return result
     */
    int insertCollectionRecord(YsCollectionRecord dto);

    /**
     * 修改采集记录状态
     * @param state 状态
     * @return result
     */
    int updateCollectionState(@Param("state") int state);

    /**
     * 插入采集凭证数据
     * @param insertList 采集数据
     * @return result
     */
    int insertDetailsBatch(List<YsEtlAssetDetails> insertList);

    /**
     * 插入用友科目数据
     * @param insertList 采集数据
     * @return result
     */
    int insertSubjectBatch(List<YsEtlCollectionSubject> insertList);

    /**
     * 删除
     * @param year 年
     * @param month 月
     * @return result
     */
    int deleteDetail(@Param("year") int year,@Param("month") int month);

    /**
     * 查询已采集的用友编码
     * @param period 年月
     * @return result
     */
    List<String> selectNumberList(Integer period);

    /**
     * 查询凭证数据
     * @param period 年月
     * @return result
     */
    List<YsAccountDetail> selectAccountList(String period);

    /**
     * 插入凭证数据
     * @param accountList 数据集
     * @return result
     */
    int insertAccountDetailsBatch(@Param("list") List<YsAccountDetail> accountList);

    /**
     * 获取采集记录列表
     * @return result
     */
    List<YsCollectionRecord> getYsCollectionRecordList();

    void insertSpecialData(List<YsAccountDetail> specialDataList);

    void deleteAccountDetail(String period);

    void deleteByYear(int year);

    void deleteEtlAccount(String period);
}
